package com.moli.iov.open.model.vo.req;

import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 车辆监控 > 电子围栏
 *
 * 围栏绑定
 *
 * @author whl
 * @date 2019 -09-21 13:51:46
 */
@Data
public class VehicleFenceBindingVo extends BaseVo {

  /**
   * effective_status 参数设置 查询参数（0：车牌号，1：vin）
   */
  private Integer queryParam;
  /**
   * 查询值
   */
  private String queryValue;
  /**
   * 车架号
   */
  @NotEmpty(message = "车架号不能为空", groups = {Save.class,
      Delete.class, Read.class, DeleteAll.class})
  private List<String> listVin;
  /**
   * 车架号
   */
  @NotBlank(message = "车架号不能为空", groups = { Inside.class,InsideList.class})
  private String vin;

  /**
   * 围栏id
   */
  @NotNull(message = "围栏id不能为空", groups = {Save.class,
      Read.class,
      Delete.class,Inside.class})
  private Long fenceId;
  /**
   * 围栏id
   */
  @NotEmpty(message = "围栏id不能为空", groups = {InsideList.class})
  private List<Long> fenceIds;

  /**
   * 0 进围栏报警，1，出围栏报警
   */
  @NotNull(message = "围栏类型不能为空", groups = {DeleteAll.class})
  private Integer alarmType;


  public interface Save {

  }


  /**
   * 查看
   */
  public interface Read {

  }

  /**
   * 删除
   */
  public interface Delete {

  }

  /**
   * 删除All
   */
  public interface DeleteAll {

  }
  /**
   * 车是否在围栏内
   */
  public interface Inside {

  }
  /**
   * 车是否在围栏内List
   */
  public interface InsideList {

  }
}
